সি# এ ইভেন্ট এবং ইভেন্ট হ্যান্ডলার প্রোগ্রামিংয়ের অন্যতম গুরুত্বপূর্ণ ধারণা, যা বিশেষ করে ইভেন্ট-ড্রিভেন প্রোগ্রামিংয়ে ব্যবহার করা হয়। ইভেন্ট হলো একটি নোটিফিকেশন বা বার্তা যা নির্দিষ্ট কোনো কাজের সময় পাঠানো হয়, এবং ইভেন্ট হ্যান্ডলার হলো সেই মেথড, যা ইভেন্ট ট্রিগার হলে এক্সিকিউট হয়।
ইভেন্ট হলো একটি ঘোষণা যা বলে যে একটি নির্দিষ্ট অ্যাকশন বা কাজ ঘটেছে। উদাহরণস্বরূপ, একটি বাটন ক্লিক করলে ইভেন্ট তৈরি হয় এবং এটি ইভেন্ট হ্যান্ডলারকে জানিয়ে দেয় যে একটি ক্লিক ইভেন্ট ঘটেছে। ইভেন্টগুলো সাধারণত ডেলিগেটের ওপর ভিত্তি করে কাজ করে।
ইভেন্ট হ্যান্ডলার হলো একটি মেথড, যা ইভেন্ট ট্রিগার হওয়ার সময় কল হয়। সাধারণত ইভেন্ট হ্যান্ডলার ডেলিগেটের সাথে যুক্ত থাকে, এবং যখন ইভেন্ট ঘটে, তখন সেই ডেলিগেট ইভেন্ট হ্যান্ডলার মেথডকে কল করে।
১. ইভেন্ট ডেলিগেট ঘোষণা করা: প্রথমে, ইভেন্টের জন্য একটি ডেলিগেট তৈরি করতে হয়। ২. ইভেন্ট ঘোষণা করা: তারপর সেই ডেলিগেটের ভিত্তিতে একটি ইভেন্ট তৈরি করা হয়। ৩. ইভেন্ট হ্যান্ডলার মেথড তৈরি করা: ইভেন্টের জন্য একটি হ্যান্ডলার মেথড তৈরি করা হয়, যেখানে ইভেন্ট ট্রিগার হলে কী কাজ হবে তা নির্ধারণ করা হয়। ৪. ইভেন্ট সাবস্ক্রাইব করা: অবশেষে, ইভেন্ট হ্যান্ডলারকে ইভেন্টের সাথে যুক্ত করা হয়।
নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি ProcessCompleted
ইভেন্ট ঘোষণা করা হয়েছে এবং একটি ইভেন্ট হ্যান্ডলার যুক্ত করা হয়েছে।
using System;
// ডেলিগেট ঘোষণা করা
public delegate void ProcessCompletedEventHandler(object sender, EventArgs e);
public class Process
{
// ইভেন্ট ঘোষণা করা
public event ProcessCompletedEventHandler ProcessCompleted;
public void StartProcess()
{
Console.WriteLine("Process Started...");
// কিছু সময় পর প্রক্রিয়াটি শেষ হচ্ছে এমনটি ভাবুন
System.Threading.Thread.Sleep(2000);
// ইভেন্ট ট্রিগার করা
OnProcessCompleted();
}
// ইভেন্ট হ্যান্ডলারকে কল করার জন্য একটি সুরক্ষিত মেথড
protected virtual void OnProcessCompleted()
{
if (ProcessCompleted != null)
{
ProcessCompleted(this, EventArgs.Empty); // ইভেন্ট ট্রিগার করছে
}
}
}
public class Program
{
public static void Main()
{
Process process = new Process();
// ইভেন্ট সাবস্ক্রাইব করা (ইভেন্টের জন্য হ্যান্ডলার মেথড যুক্ত করা)
process.ProcessCompleted += ProcessCompletedHandler;
// প্রক্রিয়া শুরু করা
process.StartProcess();
}
// ইভেন্ট হ্যান্ডলার মেথড
public static void ProcessCompletedHandler(object sender, EventArgs e)
{
Console.WriteLine("Process Completed Successfully.");
}
}
১. ProcessCompletedEventHandler ডেলিগেট: এটি একটি ডেলিগেট যা ইভেন্টের জন্য ব্যবহৃত হয়েছে। ২. ProcessCompleted ইভেন্ট: Process
ক্লাসে ProcessCompleted
নামে একটি ইভেন্ট ঘোষণা করা হয়েছে, যা ProcessCompletedEventHandler
ডেলিগেটের ভিত্তিতে তৈরি হয়েছে। 3. OnProcessCompleted মেথড: এই মেথডটি ProcessCompleted
ইভেন্টকে ট্রিগার করে। 4. ProcessCompletedHandler ইভেন্ট হ্যান্ডলার: এটি ইভেন্ট হ্যান্ডলার মেথড যা ইভেন্টটি ট্রিগার হলে কল হয়।
উপরের উদাহরণে, যখন StartProcess
মেথড চালানো হয়, তখন কিছুক্ষণ পর ProcessCompleted
ইভেন্টটি ট্রিগার করা হয় এবং ProcessCompletedHandler
মেথডটি কল হয়।
১. ইউজার ইন্টারঅ্যাকশন: উইন্ডোজ বা ওয়েব অ্যাপ্লিকেশনে ইভেন্ট হ্যান্ডলার ব্যবহার করে ব্যবহারকারীর ক্রিয়াকলাপের (যেমন ক্লিক, টাইপিং) প্রতি সাড়া দেওয়া সম্ভব হয়। ২. অ্যাসিঙ্ক্রোনাস প্রসেসিং: ইভেন্ট ব্যবহারের মাধ্যমে অ্যাসিঙ্ক্রোনাস বা ব্যাকগ্রাউন্ড প্রসেসিং হ্যান্ডল করা সহজ হয়। ৩. মডুলার কোড: ইভেন্ট হ্যান্ডলার প্রোগ্রামের কোডকে আরও মডুলার এবং ব্যবস্থাপনা সহজ করে তোলে।
ইভেন্ট হলো এমন একটি ঘোষণা যা বলে দেয় যে নির্দিষ্ট কোনো কাজ সম্পন্ন হয়েছে, এবং ইভেন্ট হ্যান্ডলার হলো সেই মেথড যা ইভেন্ট ঘটার সময় চালানো হয়। ইভেন্ট এবং ইভেন্ট হ্যান্ডলার ব্যবহারের মাধ্যমে প্রোগ্রামকে আরও ইন্টারঅ্যাকটিভ এবং কার্যকরী করে তোলা যায়।
আরও দেখুন...